/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package beans;

import java.util.*;
import java.sql.*;
import dbUtil.*;
import utils.*;
import iteradores.IteradorTipoModulo;
/**
 *
 * @author Administrador
 */
public class TipoModulo extends PgAbm implements Abm {
    ResultSet rs_tipomodulo;
    private Hashtable th_tipomodulo = new Hashtable();
    
    public TipoModulo() 
    {
        //Inicializamos la tabla hash
        //th_tipomodulo = new Hashtable();
        // Seteamos el nombre de la tabla a consultar
        super.setTableName("tipomodulo");
        
        // Se establecen los campos de la tabla
        ArrayList array_campos = new ArrayList();
        array_campos.add("idtipomodulo"); 
        array_campos.add("descripcion");    
        array_campos.add("usuario_ing");
        array_campos.add("fecha_ing");
        
        // Se establece la clave
        ArrayList array_claves = new ArrayList(); 
        array_claves.add("idtipomodulo");
        
        // Inicializamos el hash que contendra los valores de la tabla
        super.initMapping();
        
        // Se establecen estos valores en el padre
        super.setCampos(array_campos);
        super.setClaves(array_claves); 
        
        super.setSequence("idtipomodulo", "idtipomodulo_idtipomodulo_seq");
    }
    
    public String getIdTipoModulo() {
         return (String) getMapValue("idtipomodulo");
    }

    public void setIdTipoModulo(String idtipomodulo) {
        setMapValue("idtipomodulo", idtipomodulo); 
    }

    public String getDescripcion() {
        return (String) getMapValue("descripcion");
    }

    public void setDescripcion(String descripcion) {
        setMapValue("descripcion", descripcion); 
    }

    public String getUsuario_ing() {
        return (String) getMapValue("usuario_ing");
    }

    public void setUsuario_ing(String usuario_ing) {
        setMapValue("usuario_ing", usuario_ing); 
    }

    public String getFecha_ing() {
        return (String) getMapValue("fecha_ing");
    }

    public void setFecha_ing(String fecha_ing) {
        setMapValue("fecha_ing", fecha_ing); 
    }
    
    public Iterador getIterator() throws Exception
    {
        ResultSet rs_datos = super.getResultSet();
        IteradorTipoModulo iter = new IteradorTipoModulo(rs_datos);    
        return iter; 
    }
    
    public int getTiposModulos() throws Exception{
        String sql_query = "";
        int cant_filas;
        Hashtable th_aux = new Hashtable();
        
        sql_query = "select * from tipomodulo order by 2; ";
        
        sql_query += getLimitOffset();
        
        Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, 
                                            ResultSet.CONCUR_READ_ONLY);
              
        // Se ejecuta la consulta y se recupera el ResultSet        
        System.out.println("SQL: "+ sql_query);
        rs_tipomodulo = stm.executeQuery(sql_query);                   
        
        cant_filas = 0;        
        if (rs_tipomodulo.last()) 
        {          
            cant_filas = rs_tipomodulo.getRow();
            rs_tipomodulo.beforeFirst();        
        }
        
        if (rs_tipomodulo != null){
            while (rs_tipomodulo.next()){
                 th_aux.put(rs_tipomodulo.getString(1), rs_tipomodulo.getString(2));
            }
            th_tipomodulo = th_aux;
        }
        
        System.out.println("Cantidad Filas: " + cant_filas);
        return cant_filas;
    }
    
    public String getTipoModuloByID(String ID) throws Exception{
        String result = "";
        
        if (!th_tipomodulo.isEmpty()){
            result = (String)th_tipomodulo.get(ID);
        }
        return result;
    }
    
    public Iterador getIteratorAll() throws Exception
    {
        IteradorTipoModulo iter = new IteradorTipoModulo(rs_tipomodulo);    
        return iter; 
    }
}
